# Author:Foru

# 一切都是对象 一切都是对象 一切都是对象

# 元组
## 1.元组与列表类似，但元组的元素不能修改,元组是一个不可变的列表
## 2.元组使用的是小括号(),列表使用的是方括号[]
## 3.元组的创建，在括号中添加元素，并使用逗号隔开即可
## 4.所谓元组的不可变指的是元组所指向的内存中的内容不可变
tup1 = ('tan','fo','ru')
tup2 = (1,2,3,6,7,8,9)
tup3 = "ha","ho","he" # 不需要括号也可以
## 访问元组，使用下标索引
print("tup1[0]:",tup1 [0])
print("tup2[1:4]:",tup2[1:5])

## 注意：元组中只包含一个元素时，需要在元素后面添加逗号,，否则括号会被当做运算符使用
tup = (50)
print(type(tup)) # 不加逗号，类型为整型<class 'int'>
tup = (50,)
print(type(tup)) # 加逗号，类型为元组<class 'tuple'>

# 元组只有两种方法，count和index
t = ( 1, 5, 6, 7, 9, 1)
print(t.index(1)) #index方法检查字符串中是否包含子字符串str，如果在则会显示该子字符串在字符串中的位置
# str--指定查索的字符串
# beg--开始索引，默认为0
print(t.count(1)) # 该查索的子字符串在字符串中的数量
print(t[0]) # t中的第0位是什么
print(t)

# 元组是可以嵌套的
u = t, (2, 5, 6)
print(u)

# import time
# print(time.localtime())

# 修改元组，拼接
h = (1,2,3)
b = ('a','c','d')
c = h + b # 创建一个新的元组
print(c)

# 与字符串一样，元组之间可以使用+号和*号进行运算，组合复制运算生成新的元组
print(len(c)) # len计算元素个数

a = ('Hi',)*5 # 复制
print(a)

for i in c:  print(i,) # 迭代

# 元组内置函数
## 1.len()计算元组元素个数
print(len(c))
## 2.max()返回元组中元素最大值
s = ('1','3','4','8')
print(max(s))
## 3.min()返回元组中元素最小值
print(min(s))
## 4.tuple(iterable)将可迭代系列转换为元组
list = ['tan','fo','ru']
t = tuple(list)
print(t)